package com.qfedu.sem.dto;

import org.springframework.format.annotation.DateTimeFormat;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.qfedu.sem.po.Bug;
import com.qfedu.sem.po.BugLog;

import wo.common.util.WoUtil;
import wo.department.po.Staff;

/**
 * PO实体BugLog对应的DTO父类.这是自动生成的代码,请不要修改.如要添加属性或者方法,请在其子类DTO中修改.
 * @author cailei
 */
class BugLogDto_ {

	/**
	 * 主键id
	 */
	private java.lang.String id;

	/**
	 * 属性node
	 */
	private java.lang.String node;
	/**
	 * 属性processTime
	 */
	private java.util.Date processTime;
	/**
	 * 属性content
	 */
	private java.lang.String content;

	
	/**
	 * 对应PO的bug属性,多对一关联实体Bug的主键值
	 */
	private java.lang.String bugId;

	/**
	 * 对应PO的bug属性,多对一关联实体Bug的title属性值
	 */
	private java.lang.String bugTitle;
	/**
	 * 对应PO的processer属性,多对一关联实体Staff的主键值
	 */
	private java.lang.String processerId;

	/**
	 * 对应PO的processer属性,多对一关联实体Staff的name属性值
	 */
	private java.lang.String processerName;

	
	/**
	 * 无参构造函数
	 */
	public BugLogDto_() {
	}

	/**
	 * 构造函数,通过po构造dto
	 */
	public BugLogDto_(BugLog po) {
			// 设置主键id
		this.id = po.getId();
				// 设置属性node
		this.node = po.getNode();
			// 设置属性processTime
		this.processTime = po.getProcessTime();
			// 设置属性content
		this.content = po.getContent();
		
				// 设置DTO的bug属性值
		if (po.getBug() != null) {
			this.bugId = po.getBug().getId();
			this.bugTitle = po.getBug().getTitle();
		}
			// 设置DTO的processer属性值
		if (po.getProcesser() != null) {
			this.processerId = po.getProcesser().getId();
			this.processerName = po.getProcesser().getName();
		}
			}

	
	/**
	 * 主键id的getter方法
	 */
	public java.lang.String getId() {
		return this.id;
	}

	/**
	 * 主键id的setter方法
	 */
	public void setId(java.lang.String id) {
		this.id = id;
	}

	
	/**
	 * 属性node的getter方法
	 */
		public java.lang.String getNode() {
		return this.node;
	}

	/**
	 * 属性node的setter方法
	 */
		public void setNode(java.lang.String node) {
		this.node = node;
	}
	
	/**
	 * 属性processTime的getter方法
	 */
		@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
		public java.util.Date getProcessTime() {
		return this.processTime;
	}

	/**
	 * 属性processTime的setter方法
	 */
		@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
		public void setProcessTime(java.util.Date processTime) {
		this.processTime = processTime;
	}
	
	/**
	 * 属性content的getter方法
	 */
		public java.lang.String getContent() {
		return this.content;
	}

	/**
	 * 属性content的setter方法
	 */
		public void setContent(java.lang.String content) {
		this.content = content;
	}

	/**
	 * 属性bugId的getter方法
	 */
	public java.lang.String getBugId() {
		return bugId;
	}

	/**
	 * 属性bugId的setter方法
	 */
	public void setBugId(java.lang.String bugId) {
		this.bugId = bugId;
	}

	/**
	 * 属性bugTitle的getter方法
	 */
	public java.lang.String getBugTitle() {
		return bugTitle;
	}

	/**
	 * 属性bugTitle的setter方法
	 */
	public void setBugTitle(java.lang.String bugTitle) {
		this.bugTitle = bugTitle;
	}
	/**
	 * 属性processerId的getter方法
	 */
	public java.lang.String getProcesserId() {
		return processerId;
	}

	/**
	 * 属性processerId的setter方法
	 */
	public void setProcesserId(java.lang.String processerId) {
		this.processerId = processerId;
	}

	/**
	 * 属性processerName的getter方法
	 */
	public java.lang.String getProcesserName() {
		return processerName;
	}

	/**
	 * 属性processerName的setter方法
	 */
	public void setProcesserName(java.lang.String processerName) {
		this.processerName = processerName;
	}

	/**
	 * 将当前对象转化为po
	 * @return
	 */
	public BugLog createPO() {
		BugLog po = new BugLog();
			// 设置PO主键id
					if (WoUtil.isEmpty(this.id)) {
				po.setId(java.util.UUID.randomUUID().toString());
			} else {
				po.setId(this.id);
			}
						// 设置PO属性node
				po.setNode(this.node);
					// 设置PO属性processTime
				po.setProcessTime(this.processTime);
					// 设置PO属性content
				po.setContent(this.content);
				
				// 设置关系数据
		Bug bug = new Bug();
		if (!WoUtil.isEmpty(bugId)) {
			bug.setId(this.bugId);
			po.setBug(bug);
		}
			// 设置关系数据
		Staff processer = new Staff();
		if (!WoUtil.isEmpty(processerId)) {
			processer.setId(this.processerId);
			po.setProcesser(processer);
		}
			return po;
	}

	/**
	 * @param po
	 */
	public void updatePO(BugLog po) {
			// 设置PO属性node
		po.setNode(this.node);
			// 设置PO属性processTime
		po.setProcessTime(this.processTime);
			// 设置PO属性content
		po.setContent(this.content);
		
				// 设置PO的bug属性:M21
		if (!WoUtil.isEmpty(bugId)) {
			Bug bug = new Bug();
			bug.setId(this.bugId);
			po.setBug(bug);
		} else {
			po.setBug(null);
		}
			// 设置PO的processer属性:M21
		if (!WoUtil.isEmpty(processerId)) {
			Staff processer = new Staff();
			processer.setId(this.processerId);
			po.setProcesser(processer);
		} else {
			po.setProcesser(null);
		}
		}
}
